# -*- coding: utf-8 -*-#
#-------------------------------------------------------------------------------
# 建立者:        Young  
# Name:         demo10.07
# Description:
# Author:       $赵怡蕾
# Date:         2019/3/6
#-------------------------------------------------------------------------------

class Rectangle:
    def __init__(self):
        self.left = 0
        self.top = 0
    # 用于监控position属性的写操作，可以同时设置left属性和top属性
    def setPosition(self,position):
        self.left,self.top = position
    # 用于监控position属性的读操作，可以同时获取left属性和top属性
    def getPosition(self):
        return self.left,self.top
    # 用于监控position属性的删除操作
    def deletePosition(self):
        print('position属性已经被删除')
        # 重新初始化left和top属性
        self.left = 0
        self.top = 0
    # 通过property函数将上面3个方法与position属性绑定，对position属性进行相关操作时
    # 就会调用相应的方法
    position = property(getPosition,setPosition,deletePosition)

r = Rectangle()
r.left = 10
r.top = 20
print('left','=',r.left)
print('top','=',r.top)
# 通过position属性获取left属性和top属性的值，在获取属性值的过程中，getPosition方法被调用
print('position','=',r.position)
# 通过position属性设置left属性和top属性的值，在设置属性值的过程中，setPosition方法被调用
r.position = 100,200
# 通过position属性获取left属性和top属性的值，在获取属性值的过程中，getPosition方法被调用
print('position','=',r.position)
# 删除position属性，deletePosition方法被调用，left属性和top属性被重新设置为0
del r.position
print(r.position)
r.position = 30,40
print('r.position','=',r.position)